Rendering images utilizing adaptive error diffusion

ABSTRACT

An adaptive halftoning method where the difference between a digital image and a filtered digital image is introduced into the system on a pixel by pixel basis is disclosed. In this method, each input difference pixel has a corresponding error value of the previous pixel added to the input value at a summing node, resulting in modified image difference data; the modified image difference data is passed to a threshold comparator where the modified image difference data is compared to a threshold value, the threshold value varying according to the properties of the digital image, to determine the appropriate output level; the output level is subtracted from the modified image difference value to produce the input to an error filter; the output of the error filter is multiplied by an adaptation coefficient, where the adaptation coefficient varies according to the properties of the digital image, to generate the error level for the subsequent input pixel; and, the cyclical processing of pixels is continued until the end of the input data is reached.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the rendering of digital image data,and in particular, to the binary or multilevel representation of imagesfor printing or display purposes

2. Background Description

Since images constitute an effective means of communicating information,displaying images should be as convenient as displaying text. However,many display devices, such as laser and ink jet printers, print only ina binary fashion. Furthermore, some image format standards only allowbinary images. For example, the WAP1.1 (Wireless Application Protocol)protocol specification allows only for one graphic format, WBMP, a one(1) bit version of the BMP (bitmap) format. Besides allowing only binaryimages, some image format standards and some displays only allow imagesof a limited number of pixels. In the WAP 1.1 standard, a WBMP imageshould not be larger than 150×150 pixels. Some WAP devices have screensthat are very limited in terms of the number of pixels. For example, oneWAP device has a screen that is 96 pixels wide by 65 pixels high. Inorder to render a digitized continuous tone input image using a binaryoutput device, the image has to be converted to a binary image.

The process of converting a digitized continuous tone input image to abinary image so that the binary image appears to be a continuous toneimage is known as digital halftoning.

In one type of digital halftoning processes, ordered dither digitalhalftoning, the input digitized continuous tone image is compared, on apixel by pixel basis, to a threshold taken from a threshold array. Manyordered dither digital halftoning methods suffer from low frequencyartifacts. Because the human vision system has greater sensitivity atlow frequencies (less than 12 cycles/degree), such low frequencyartifacts are very noticeable.

The visibility of low frequency artifacts in ordered dither digitalhalftoning methods has led to the development of methods producingbinary images with a power spectrum having mostly higher frequencycontent, the so called “blue noise methods”.

The most frequently used “blue noise method” is the error diffusionmethod. In an error diffusion halftoning system, an input digital imageI_(n) (the digitized continuous tone input image) is introduced into thesystem on a pixel by pixel basis, where n represents the input imagepixel number. Each input pixel has its corresponding error valueE_(n−1), where E_(n−1) is the error value of the previous pixel (n−1),added to the input value I_(n) at a summing node, resulting in modifiedimage data. The modified image data, the sum of the input value and theerror value of the previous pixel (I_(n)+E_(n−1)), is passed to athreshold comparator. The modified image data is compared to theconstant threshold value T._(O), to determine the appropriate outputlevel O_(n). Once the output level O_(n) is determined, it is subtractedfrom the modified image value to produce the input to an error filter.The error filter allocates its input, I_(n)−O_(n), to subsequent pixelsbased upon an appropriate weighting scheme. Various weighting techniquesmay be used generate the error level E._(n) for the subsequent inputpixel. The cyclical processing of pixels is continued until the end ofthe input data is reached. (For a more complete description of errordiffusion see, for example, “Digital Halftoning”, by Robert Ulichney,MIT Press, Cambridge, Mass. and London, England, 1990, pp. 239-319).

Although the error diffusion method presents an improvement over manyordered dither methods, artifacts are still present. There is aninherent edge enhancement in the error diffusion method. Other knownartifacts produced by the error diffusion method include artifactscalled “worms” and “snowplowing” which degrade image quality.

In U.S. Pat. No. 5,045,952, Eschbach disclosed selectively modifying thethreshold level on a pixel by pixel basis in order to increase ordecrease the edge enhancement of the output digital image. Theimprovements disclosed by Eschbach do not allow the control of the edgeenhancement by controlling the high frequency portion of the error.Also, the improvements disclosed by Eschbach do not introduce parametersthat can be selected to produce the image of the highest perceptualquality at a specific output device.

In U.S. Pat. No. 5,757,976, Shu disclosed utilizing a set of errorfilters having different sizes for diffusing the input of the errorfilter among neighboring pixels in predetermined tonal areas of an imageand adding “noise” to the threshold in order to achieve a smoothhalftone image quality. The improvements disclosed by Shu do notintroduce parameters that can be selected to produce the image of thehighest perceptual quality at a specific output device.

SUMMARY OF THE INVENTION

It is the primary object of this invention to provide a method forgenerating a halftone image from a digitized continuous tone input imagethat provides adjustment of the local contrast of the resulting halftoneimage, minimizes artifacts and is easily implemented.

It is also an object of this invention to provide a method forgenerating a halftone image with parameters that can be selected toproduce the image of highest quality at a specific output device.

To achieve the objects of this invention, one aspect of this inventionincludes an adaptive halftoning method where the difference between adigital image and a filtered digital image is introduced into the systemon a pixel by pixel basis; each input difference pixel having acorresponding error value, generated from the previous pixels, added tothe input value at a summing node, resulting in modified imagedifference data; the modified image difference data being passed to athreshold comparator where the modified image difference data iscompared to a threshold value, the threshold value varying according tothe properties of the digital image, to determine the appropriate outputlevel; the output level is subtracted from the modified image differencevalue to produce the input to an error filter; the output of the errorfilter is multiplied by a adaptation coefficient, where the adaptationcoefficient varies according to the properties of the digital image, togenerate the error level for the subsequent input pixel; and, thecyclical processing of pixels is continued until the end of the inputdata is reached.

In another aspect of this invention, in the method described above, ahistogram modification is performed on the image, and the differencebetween the histogram modified digital image and the filtered digitalimage is introduced into the system on a pixel by pixel basis.

In still another aspect of this invention, in the method describedabove, the histogram modification is performed on the difference betweenthe digital image and the filtered digital image and the histogrammodified difference is introduced into the system on a pixel by pixelbasis.

In a further aspect of this invention, in the method described above,the selectively changing of the adaptation coefficient comprisesdividing the difference between the value at the pixel and the filteredvalue at the pixel by the filtered value at the pixel, multiplying theabsolute value of the result of the division by a first parameter, andadding a second parameter to the result of the multiplication, therebyobtaining the coefficient.

In still another aspect of this invention, in the method describedabove, the threshold calculation comprises multiplying the filteredvalue at the pixel by a third parameter.

In still another aspect of this invention, in the method described aboveand including the adaptation coefficient and threshold calculated as inthe two preceding paragraphs, where the filter is a filter of finiteextent, the extent of the filter, the first, second parameters and thirdparameters are selected to produce the image of the highest perceptualquality at a specific output device.

The methods, systems and computer readable code of this invention can beused to generate halftone images in order to obtain images of thehighest perceptual quality when rendered on displays and printers. Themethods, systems and computer readable code of this invention can alsobe used to for the design of computer generated holograms and for theencoding of the continuous tone input data.

DESCRIPTION OF THE DRAWINGS

The novel features that are considered characteristic of the inventionare set forth with particularity in the appended claims. The inventionitself, however, both as to its organization and its method ofoperation, together with other objects and advantages thereof will bebest understood from the following description of the illustratedembodiment when read in connection with the accompanying drawingswherein:

FIG. 1a depicts a block diagram of selected components of an embodimentof a system, of this invention for generating a halftone image from adigitized continuous tone input image, where the histogram modificationblock is included after the summing node; and,

FIG. 1b depicts a block diagram of selected components of an embodimentof a system of this invention for generating a halftone image from adigitized continuous tone input image, where the histogram modificationblock is included before the summing node; and,

FIG. 1c depicts a block diagram of selected components of an embodimentof a system of this invention for generating a halftone image from adigitized continuous tone input image, where the adaptation coefficientmultiplies the input to the error filter block; and

FIG. 2 depicts a block diagram of selected components of anotherembodiment of the system of this invention for generating a halftoneimage from a digitized continuous tone input image; and

FIG. 2a depicts a block diagram of selected components of anotherembodiment of the system of this invention for generating a halftoneimage from a digitized continuous tone input image, where the adaptationcoefficient multiplies the input to the error filter block.

DETAILED DESCRIPTION

A method and system, for generating a halftone image from a digitizedcontinuous tone input image, that provide adjustment of the localcontrast of the resulting halftone image, minimizes artifacts, areeasily implemented and contain parameters that can be selected on thebasis of device characteristics like brightness, dynamic range, andpixel count, to produce the image of highest perceptual quality at aspecific output device are disclosed.

A block diagram of selected components of an embodiment of a system ofthis invention for generating a halftone image from a digitizedcontinuous tone input image (also referred to as a digital image) isshown in FIG. 1a. Referring to FIG. 1a, image input block 10 introducesan input digital image I_(n) into the system on a pixel by pixel basis,where n represents the input image pixel number. The input image is alsoprovided to the filtering block 20. The output of filtering block 20 hasthe formAv_(n)32 h( . . . ,I_(k), . . . , I._(n), . . . )   (1)where h is a functional form spanning a number of pixels. It should beapparent that the input digital image 10 can be a two dimensional arrayof pixel values and that the array can be represented as a linear arrayby using such approaches as raster representations or serpentinerepresentation. For a two dimensional array of pixel values, the filter20 will also be a two dimensional array of filter coefficients and canalso be represented as a linear array. The functional forms will beshown in the one dimensional form for ease of interpretation.

In one embodiment: the output of the filtering block 20 has the formAv_(n)={Σ_(n−N) ^(n+N)I_(j)}/(2N+1)   (2)If the filtering block 20 comprises a linear filter, Av_(n) will begiven by a sum of terms, each term comprising the product of an inputimage pixel value multiplied by a filter coefficient.

It should be apparent that special consideration has to be given to thepixels at the boundaries of the image. For example, the calculations canbe started N pixels from the boundary in equation (2). In that case thecalculated and halftone image are smaller than the input image. Inanother case, the image is continued at the boundaries, the continuationpixels having the same value as the boundary pixel. It should beapparent that other methods of taking into account the effect of theboundaries can be used.

The output of the filtering block 20, Av_(n), is subtracted from theinput digital image I._(n) at node 25, resulting in a difference value,D_(n). In the embodiment in which histogram modification is notincluded, D_(n) is the input to a summing node 70. At the summing node70, a corresponding error value E_(n−1), where E_(n−1) is the errorvalue accumulated from the previous pixels, is added to the input valueD_(n) resulting in a modified image datum. The modified image data,D_(n)+E_(n−1), is compared to the output of the threshold calculationblock 30 in the threshold comparison block 40 to produce the halftoningoutput, O_(n). (In the case of a binary output device, if the modifiedimage datum is above the threshold, the output level is the white level.Otherwise, the output level is the black level.) Once the output levelO_(n) is determined, it is subtracted from the modified image value toproduce the input to an error filter block 50. The error filter block 50allocates its input, D_(n)+E_(n−1)−O_(n), to subsequent pixels basedupon an appropriate weighting scheme. The weighted contributions of theerror filter block 50 input are stored and all the contributions to thenext input pixel are summed to produce the output of the error filterblock 50, the error value. The output of the error filter block 50, theerror value, is multiplied by the adaptation coefficient in block 60 togenerate the error level E._(n) for the subsequent input pixel. Thecyclical processing of pixels, as further described below, is continueduntil the end of the input data is reached.

Referring again to FIG. 1, the input image is also provided to thethreshold calculation block 30. The output of the threshold calculationblock 30 has the formt( . . . , I_(k), . . . , I._(n), . . . )   (3)where t is a functional form spanning a number of pixels. The form inequation (3) allows the varying of the threshold according to propertiesof the digital image.

In one embodiment,t( . . . ,I_(k), . . . , I._(n), . . . )=C₀{Σ_(n−N) ^(n+N)I_(j)}/(2N+1)  (4)In another embodiment, the output of the threshold calculation block isa linear combination of terms, each term comprising the product of aninput image pixel value multiplied by a coefficient. It should beapparent that this embodiment can also be expressed as a function timesa parameter.The output of the threshold calculation block 30 is the threshold.

The first pixel value to be processed, I_(O), produces a differencevalue D_(O) from summing node 25 and produces a value of D_(O) out ofsumming node 70 (since E⁻¹ is equal to 0). D_(O) is then compared to thethreshold producing an output of O_(O). At summing node 45, O_(O) issubtracted from D_(O) to produce the input to the error filter 50. Theerror filter 50 allocates its input, D_(O)−O_(O), to subsequent pixelsbased upon an appropriate weighting scheme which determines how much thecurrent input contributes to each subsequent pixel. Various weightingtechniques may be used (see, for example, “Digital Halftoning” by RobertUlichney, MIT Press, Cambridge, Mass. and London, England, 1990, pp.239-319). The output of error filter 50 is multiplied by a adaptationcoefficient 60. The adaptation coefficient 60 is the output of thecoefficient calculation block 80. In one embodiment, the output of thecoefficient calculation block 80 has the formC₁+C₂abs{f( . . . ,I_(k), . . . , I._(n), . . . ,)/g( . . . ,I_(k), . .. , I._(n), . . . )}  (5)where f and g are functional forms spanning a number of pixels. The formof Equation (5) allows the selective changing, of the coefficientaccording to the local properties of the digital image. C₁ and C₂ andthe parameter in the threshold expression can be selected to produce theimage of highest perceptual quality at a specific output device.

In another embodiment, the output of the coefficient calculation block80 has the formC₁+C₂{abs((I._(n)−({Σ_(n−N) ^(n+N)I_(j)}/(2N+1)))/({Σ_(n−N)^(n+N)I_(j)}/(2N+1))))}  (6)

The input of error filter block 50 is multiplied by weightingcoefficients and stored. All the contributions from the stored weightedvalues to the next pixel are summed to produce the out put of the errorfilter block 50. The output of the error filter block 50 is multipliedby the adaptation coefficient 60. The delay block 65 stores the resultof the product of the adaptation coefficient 60 and the output of theerror filter block 50. (In one embodiment, the Floyd-Steinberg filter,the input to the error filter is distributed according to the filterweights to the next pixel in the processing line and to neighboringpixels in the following line.) The output of delay block 65 is E_(n−1)and is delayed by one pixel. (When the first pixel is processed, theoutput of the delay, E_(O), is added to the subsequent difference, D₁.)

It should be apparent that the sequence order of error filter block 50and the adaptation coefficient block 60 can be interchanged with similarresults. In the embodiment in which the adaptation coefficient 60multiplies the difference between the modified image datum and theoutput level, shown in FIG. 1c, the delay block 65 stores the output ofthe error filter block.

When the next pixel, I₁, is introduced into the system from the imageinput block 10, it produces a difference value D₁ from summing node 25and produce a value of (D₁+E_(O)) out of summing node 70.

The above steps repeat for each subsequent pixel in the digital imagethereby producing a halftone image, the sequence O_(O), O₁, . . . ,O_(n). The modification of the threshold level and the adaptationcoefficient allows control of the amount of edge enhancement andprovides the opportunity to reduce artifacts.

In the embodiment in which histogram modification is included after thesumming node 25, D_(n) is the input to the histogram modification block75 and the output of the histogram modification block 75 is the input tothe summing node 70. The above description follows if D_(n) is replacedby the output of the histogram modification block 75. It should beapparent that histogram modification operates on the entire differenceimage. (Histogram modification is well known to those skilled in theart. For a discussion of histogram modification, see, for example,Digital Image Processing, by William K. Pratt, John Wiley and Sons,1978, ISBN 0-471-01888-0, pp. 311-318. For a discussion of histogramequalization, a form of histogram modification, see, for example,Digital Image Processing, by R. C. Gonzalez and P. Wintz, Addison-WesleyPublishing Co., 1977, ISBN 0-201-02596-3, pp. 119-126.)

In the embodiment in which histogram modification is included after theimage input block 10, D_(n) is the difference between the output of thehistogram modification block 75 (FIG. 1b) and the filtered image. Theabove description follows if I_(n) is replaced by the output of thehistogram modification block.

The method described above produces improvements of the error diffusionmethod by utilizing the difference between the digital image and thefiltered digital image as input into the system instead of the digitalimage, by multiplying the .the output of the error filter by theadaptation coefficient, where the adaptation coefficient variesaccording to the properties of the digital image, and by using athreshold value that varies according to the properties of the digitalimage to determine the appropriate output level.

Sample Embodiment

In a specific embodiment, shown in FIG. 2, the output of the filteringblock 20, Av_(n), is given by Equation (2). The threshold calculation 30is a function of the output of the filtering block 20 and is given byt( . . . ,I_(k), . . . , I._(n), . . . )=C_(O)Av_(n)   (7)which is the same function as in Equation 4 when the output of thefiltering block 20, Av_(n), is given by Equation (2). The output of thecoefficient calculation block 80 depends on the output of the filteringblock 20, Av_(n), and the difference D_(n) and is given byC₁+C₂{abs((D_(n)−Av_(n))/Av_(n))}  (8)When the output of the filtering block 20, Av_(n), is given by Equation(2), Equation (8) is the same as Equation (6).

Histogram equalization is included after the summing node 25. Theprocessing of the input image pixels 10 occurs as described in thepreceding section.

The value of N in Equation (2) (the extent of the filter), C_(O), C₁,and C₂ (first, second parameters and third parameters) can be selectedto produce the image of highest perceptual quality at a specific outputdevice. For a WBMP image on a specific monochrome mobile phone display,utilizing a Floyd-Steinberg error filter, the following parameters yieldimages of high perceptual quality:N=7,C_(O)=−20,C₁=0.05, andC₂=1.In another embodiment, shown in FIG. 2a, the sequence order of errorfilter block 50 and the adaptation coefficient block 60 areinterchanged. In the embodiment of FIG. 2a, in which the adaptationcoefficient 60 multiplies the difference between the modified imagedatum and the output level, the delay block 65 stores the output of theerror filter block.

The embodiments described herein can also be expanded to includecomposite images, such as color images, where each color component mightbe treated individually by the algorithm. In the case of color inputimages, the value of N in Equation (2) (the extent of the filter),C_(O), C₁, and C₂ (first, second parameters and third parameters) can beselected to control the color difference at a color transition whileminimizing any effects on the brightness at that location. Otherpossible applications of these embodiments include the design ofcomputer generated holograms and the encoding of the continuous toneinput data.

Although the embodiments described herein are most easily understood forbinary output devices, the embodiments described herein can also beexpanded to include rendering an output image when the number of graylevels in the image exceeds that of obtainable in the rendering device.It should be apparent how to expand the embodiments described herein toM-ary displays or M-ary rendering devices (see, for example, “DigitalHalftoning” by Robert Ulichney, MIT Press, Cambridge, Mass., and London,England, 1990, p. 341).

It should be appreciated that the various embodiments described aboveare provided merely for purposes of example and do not constitutelimitations of the present invention. Rather, various other embodimentsare also within the scope of the claims, such as the following. Thefilter 20 can be selected to impart the desired functional behavior ofthe difference. The filter 20 can, for example, be a DC preservingfilter. The threshold 40 and the adaptation coefficient 60 can also beselected to impart the desired characteristics of the image.

It should be apparent that Equations (4) and (5) are exemplary forms offunctional expressions with parameters that can be adjusted. Functionalexpressions for the threshold and the adaptation coefficient ,where theexpressions include parameters that can be adjusted, will satisfy theobject of this invention.

In general, the techniques described above may be implemented, forexample, in hardware, software, firmware, or any combination thereof.The techniques described above may be implemented in one or morecomputer programs executing on a programmable computer including aprocessor, a storage medium readable by the processor (including, forexample, volatile and non-volatile memory and/or storage elements), atleast one input device, and at least one output device. Program code maybe applied to data entered using the input device to perform thefunctions described and to generate output information. The outputinformation may be applied to one or more output devices.

Elements and components described herein may be further divided intoadditional components or joined together to form fewer components forperforming the same functions.

Each computer program within the scope of the claims below may beimplemented in any programming language, such as assembly language,machine language, a high-level procedural programming language, or anobject-oriented programming language. The programming language may be acompiled or interpreted programming language. Each computer program maybe implemented in a computer program product tangibly embodied in amachine-readable storage device for execution by a computer processor.Method steps of the invention may be performed by a computer processorexecuting a program tangibly embodied on a computer-readable medium toperform functions of the invention by operating on input and generatingoutput.

The generation of the halftone image can occur at a location remote fromthe rendering printer or display. The operations performed in softwareutilize instructions (“code”) that are stored in computer-readable mediaand store results and intermediate steps in computer-readable media.

Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CDROM, any other optical medium, punch cards, paper tape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread. Electrical, electromagnetic or optical signals that carry digitaldata streams representing various types of information are exemplaryforms of carrier waves transporting the information.

Other embodiments of the invention, including combinations, additions,variations and other modifications of the disclosed embodiments will beobvious to those skilled in the art and are within the scope of thefollowing claims.

1. A method of generating a halftone image from an input digital image,said input digital image represented by a multiplicity of pixels, eachpixel having a given value, said values being stored in a memory, saidmethod comprising the steps of: (A) determining the one or moreproperties including local properties of the input digital image; (B)filtering the input digital image, said filtering having as output afiltered value at each pixel; (C) obtaining the difference between thevalue at the a pixel and the filtered value at the pixel, saiddifference being a threshold input; (D) generating the an output statefor the pixel depending upon the relationship of the value of saidthreshold input relative to a threshold; (E) producing an error value,said error value being indicative of the deviation of said thresholdinput from the output state; (F) multiplying said error value by acoefficient, the result of said multiplication being stored; (G)combining the stored value with the difference between the next pixelvalue and the next filtered value to produce a new threshold input; (H)repeating steps (D) through (G) the generating an output state, theproducing an error value, the multiplying said error value, and thecombining the stored error value for each pixel in the input digitalimage thereby producing a halftone image; and varying the thresholdaccording to the one or more properties of the input digital image; andselectively changing the coefficient in step (E) according to the localone or more properties of the input digital image.
 2. The method ofclaim 1 further comprising the step of: performing a histogrammodification of the image pixels, before step (B) filtering the inputdigital image.
 3. The method of claim 1 further comprising the step of:performing a histogram modification of the difference between the valueat the pixel and the filtered value at the pixel, before step (D)generating the output state.
 4. The method of claim 1 wherein theselectively changing of the coefficient comprises: dividing a firstfunction of the local pixel values of the input digital image by asecond function of the local pixel values of the input digital image;and multiplying the absolute value of the result of said division by afirst parameter; and adding a second parameter to the result of themultiplication, thereby obtaining the coefficient.
 5. The method ofclaim 4 wherein said first function is the difference between the valueat the pixel and the filtered value at the pixel and said secondfunction is the filtered value at the pixel.
 6. The method of claim 4wherein the threshold is a third function of the local pixel values ofthe input digital image.
 7. The method of claim 6 wherein said thirdfunction is a linear function of the local pixel values of the inputdigital image.
 8. The method of claim 6 wherein said third function is alinear function of the local values of the digital image.
 9. The methodof claim 4 wherein the threshold is the filtered value at the pixelmultiplied by a third parameter.
 10. The method of claim 9 wherein thefilter in step (B) is filtering comprises using a filter of finiteextent, the extent of the filter, the first parameter, the secondparameters parameter and the third parameters parameter being selectedto produce the an image of highest perceptual quality at a specificoutput device.
 11. The method of claim 9 further comprising the step of:performing a histogram modification of the difference between the valueat the pixel and the filtered value at the pixel, before step (D)generating the output state.
 12. The method of claim 1 wherein the inputdigital image is a monochrome image.
 13. The method of claim 1 whereinthe input digital image is a color image.
 14. A system for generating ahalftone image from an input digital image, said input digital imagerepresented by a multiplicity of pixels, each pixel having a givenvalue, said values being stored in a memory, said apparatus systemcomprising: means for determining the one or more properties includinglocal properties of said input digital image; and means for retrievingthe pixel values; and means for filtering the input digital image, saidfiltering having as output a filtered value at each pixel; and means forobtaining the difference between the value at the a pixel and thefiltered value at the pixel, said difference being a threshold input;and means for producing an error value, said error value beingindicative of the deviation of said threshold input from the an outputstate; and means for multiplying said error value by an adaptationcoefficient to obtain a diffused value and means for storing thediffused value and delaying said stored diffused value by one pixel; andmeans for combining the stored delayed diffused value with thedifference between the pixel value and the filtered value; and means forvarying the a threshold according to the one or more properties of theinput digital image at the pixel value; and means for selectivelychanging the adaptation coefficient according to the local one or moreproperties of the input digital image.
 15. The system of claim 14further comprising: means performing a histogram modification of theimage pixels.
 16. The system of claim 14 further comprising: means forperforming a histogram modification of the difference between the valueat the pixel and the filtered value at the pixel.
 17. The system ofclaim 14 wherein the means for selectively changing of the adaptationcoefficient comprise: means for dividing a first function of the localpixel values of the input digital image by a second function of thelocal pixel values of the input digital image; and means for multiplyingthe absolute value of the result of said division by a first parameter;and adding a second parameter to the result of the multiplication,thereby obtaining the adaptation coefficient.
 18. A computer programproduct comprising: a computer usable storage medium having computerreadable code embodied therein for generating a halftone image from aninput digital image, said input digital image represented by amultiplicity of pixels, each pixel having a given value, said valuesbeing stored in a memory, said code causing comprising instructions fora computer system to:, the instructions comprising: instructions todetermine theone or more properties including local properties of saidinput digital image; and instructions to retrieve the pixel values; andinstructions to filter the input digital image, said filtering having asoutput a filtered value at each pixel; and instructions to obtain thedifference between the value at thea pixel and the filtered value at thepixel, said difference being a threshold input; and instructions toproduce an error value, said error value being indicative of thedeviation of said threshold input from thean output state; andinstructions to multiply said error value by an adaptation coefficientto obtain a diffused value; and instructions to store the diffused valueand delayingdelay said stored diffused value by one pixel; andinstructions to combine the stored delayed diffused value with thedifference between the pixel value and the filtered value; andinstructions to vary thea threshold according to the one or moreproperties of the input digital image at the pixel value; andinstructions to selectively change the adaptation coefficient accordingto the localone or more properties of the input digital image.
 19. Thecomputer program product of claim 18 where, the computer readable codefurther causes the computer system to wherein the instructions furthercomprise: instructions to perform a histogram modification of the imagepixels.
 20. The computer program product of claim 18 where, the computerreadable code further causes the computer system to wherein theinstructions further comprise: instructions to perform a histogrammodification of the difference between the value at the pixel and thefiltered value at the pixel.
 21. The computer program product of claim18 where, the computer readable code in causing the computer systemwherein the instructions to selectively change the adaptationcoefficient, further causes the computer system to comprise:instructions to divide a first function of the localpixel values of theinput digital image by a second function of the localpixel values of theinput digital image; and instructions to multiply the absolute value ofthe result of said division by a first parameter; and instructions toadd a second parameter to the result of the multiplication, therebyobtaining the adaptation coefficient.
 22. The computer program productof claim 21 wherein said first function is the difference between thevalue at the pixel and the filtered value at the pixel and said secondfunction is the filtered value at the pixel.
 23. The computer programproduct of claim 22 wherein said the threshold is the filtered value atthe pixel multiplied by a third parameter.
 24. The computer programproduct of claim 23 wherein the filter used to filter the input digitalimage is a filter of finite extent, the extent of the filter, the firstparameter, the second parameters parameter and third parametersparameter being selected to produce the an image of highest quality at aspecific output device.
 25. The computer program product of claim 25where, the computer readable code further causes the computer system to18 wherein the instructions further comprise: instructions to perform ahistogram modification of the difference between the value at the pixeland the filtered value at the pixel.
 26. The computer program product ofclaim 21 wherein the threshold is a third function of the local pixelvalues of the input digital image.
 27. The computer program product ofclaim 26 wherein said third function is a linear function of the localpixel values of the input digital image.
 28. The computer programproduct of claim 26 wherein said third function is a linear function ofthe local values of the digital image.
 29. The computer program productof claim 18 wherein the input digital image is a color image.
 30. Thecomputer program product of claim 18 wherein the input digital image isa monochrome image.
 31. The system of claim 14, further comprising: arendering device.
 32. The system of claim 31, wherein said renderingdevice is a binary output device.
 33. The system of claim 31, whereinsaid rendering device is a M-ary display or a M-ary rendering device.34. The system of claim 31, wherein said rendering device is a mobilephone display.
 35. A mobile device capable of generating a halftoneimage from an input digital image, said input digital image representedby a multiplicity of pixels, each pixel having a given value, saidmobile device comprising: means for determining one or more propertiesof said input digital image; means for retrieving the pixel values;means for filtering the input digital image, said filtering having asoutput a filtered value at each pixel; means for obtaining thedifference between the value at a pixel and the filtered value at thepixel, said difference being a threshold input; means for producing anerror value, said error value being indicative of the deviation of saidthreshold input from an output state; means for multiplying said errorvalue by an adaptation coefficient to obtain a diffused value and meansfor storing the diffused value and delaying said stored diffused valueby one pixel; means for combining the stored delayed diffused value withthe difference between the pixel value and the filtered value; means forvarying a threshold according to the one or more properties of the inputdigital image at the pixel value; means for selectively changing theadaptation coefficient according to the one or more properties of theinput digital image; and a rendering device.